package lxs.tool.liberator.work.core;

import lxs.tool.liberator.common.utils.IDCreator;


import java.util.ArrayList;

import java.util.List;


public class Tool {
    static String s = "MySQL 数值型函数$\n" +
            "ABS\t求绝对值\n" +
            "SQRT\t求二次方根\n" +
            "MOD\t求余数\n" +
            "CEIL 和 CEILING\t两个函数功能相同，都是返回不小于参数的最小整数，即向上取整\n" +
            "FLOOR\t向下取整，返回值转化为一个BIGINT\n" +
            "RAND\t生成一个0~1之间的随机数，传入整数参数是，用来产生重复序列\n" +
            "ROUND\t对所传参数进行四舍五入\n" +
            "SIGN\t返回参数的符号\n" +
            "POW 和 POWER\t两个函数的功能相同，都是所传参数的次方的结果值\n" +
            "SIN\t求正弦值\n" +
            "ASIN\t求反正弦值，与函数 SIN 互为反函数\n" +
            "COS\t求余弦值\n" +
            "ACOS\t求反余弦值，与函数 COS 互为反函数\n" +
            "TAN\t求正切值\n" +
            "ATAN\t求反正切值，与函数 TAN 互为反函数\n" +
            "COT\t求余切值\n" +
            "@MySQL 字符串函数$\n" +
            "LENGTH\t计算字符串长度函数，返回字符串的字节长度\n" +
            "CONCAT\t合并字符串函数，返回结果为连接参数产生的字符串，参数可以使一个或多个\n" +
            "INSERT\t替换字符串函数\n" +
            "LOWER\t将字符串中的字母转换为小写\n" +
            "UPPER\t将字符串中的字母转换为大写\n" +
            "LEFT\t从左侧字截取符串，返回字符串左边的若干个字符\n" +
            "RIGHT\t从右侧字截取符串，返回字符串右边的若干个字符\n" +
            "TRIM\t删除字符串左右两侧的空格\n" +
            "REPLACE\t字符串替换函数，返回替换后的新字符串\n" +
            "SUBSTRING\t截取字符串，返回从指定位置开始的指定长度的字符换\n" +
            "REVERSE\t字符串反转（逆序）函数，返回与原始字符串顺序相反的字符串\n" +
            "@MySQL 日期和时间函数$\n" +
            "CURDATE\t两个函数作用相同，返回当前系统的日期值\n" +
            "CURTIME\t两个函数作用相同，返回当前系统的时间值\n" +
            "NOW\t两个函数作用相同，返回当前系统的日期和时间值\n" +
            "UNIX_TIMESTAMP\t获取UNIX时间戳函数，返回一个以 UNIX 时间戳为基础的无符号整数\n" +
            "FROM_UNIXTIME\t将 UNIX 时间戳转换为时间格式，与UNIX_TIMESTAMP互为反函数\n" +
            "MONTH\t获取指定日期中的月份\n" +
            "MONTHNAME\t获取指定日期中的月份英文名称\n" +
            "DAYNAME\t获取指定曰期对应的星期几的英文名称\n" +
            "DAYOFWEEK\t获取指定日期对应的一周的索引位置值\n" +
            "WEEK\t获取指定日期是一年中的第几周，返回值的范围是否为 0〜52 或 1〜53\n" +
            "DAYOFYEAR\t获取指定曰期是一年中的第几天，返回值范围是1~366\n" +
            "DAYOFMONTH\t获取指定日期是一个月中是第几天，返回值范围是1~31\n" +
            "YEAR\t获取年份，返回值范围是 1970〜2069\n" +
            "TIME_TO_SEC\t将时间参数转换为秒数\n" +
            "SEC_TO_TIME\t将秒数转换为时间，与TIME_TO_SEC 互为反函数\n" +
            "DATE_ADD\t两个函数功能相同，都是向日期添加指定的时间间隔\n" +
            "DATE_SUB\t两个函数功能相同，都是向日期减去指定的时间间隔\n" +
            "ADDTIME\t时间加法运算，在原始时间上添加指定的时间\n" +
            "SUBTIME\t时间减法运算，在原始时间上减去指定的时间\n" +
            "DATEDIFF\t获取两个日期之间间隔，返回参数 1 减去参数 2 的值\n" +
            "DATE_FORMAT\t格式化指定的日期，根据参数返回指定格式的值\n" +
            "WEEKDAY\t获取指定日期在一周内的对应的工作日索引\n" +
            "@MySQL 聚合函数$\n" +
            "MAX\t查询指定列的最大值\n" +
            "MIN\t查询指定列的最小值\n" +
            "COUNT\t统计查询结果的行数\n" +
            "SUM\t求和，返回指定列的总和\n" +
            "AVG\t求平均值，返回指定列数据的平均值\n" +
            "@MySQL 流程控制函数$\n" +
            "IF\t判断，流程控制\n" +
            "IFNULL\t判断是否为空\n" +
            "CASE\t搜索语句";

    private static class C {
        private String id;
        private String classify;
        private String name;
        private String remark;

        public String getId() {
            return id;
        }

        public void setId(String id) {
            this.id = id;
        }

        public String getClassify() {
            return classify;
        }

        public void setClassify(String classify) {
            this.classify = classify;
        }

        public String getName() {
            return name;
        }

        public void setName(String name) {
            this.name = name;
        }

        public String getRemark() {
            return remark;
        }

        public void setRemark(String remark) {
            this.remark = remark;
        }
    }

//    public static void main(String[] args) {
//        List<C> list = new ArrayList<>();
//        String[] split = s.split("@");
//        for (String str : split) {
//            String[] split1 = str.split("\\$");
//            String cl = split1[0];
//            String[] funcs = split1[1].split("\n");
//            for (String sr : funcs) {
//                if (sr.equals("")) continue;
//                String[] split2 = sr.split("\t");
//                C c = new C();
//                c.setId(IDCreator.get("func"));
//                c.setClassify(cl);
//                c.setName(split2[0]);
//                c.setRemark(split2[1]);
//                list.add(c);
//            }
//        }
//        String s="insert into func(`id`,`classify`,`name`,`remark`) values('%s','%s','%s','%s');";
//        for (C c : list) {
//            String format = String.format(s, c.getId(), c.getClassify(), c.getName(), c.getRemark());
//            System.out.println(format);
//        }
//    }
}
